import numpy as np

a = np.arange(12) ** 2
print(a)
i = np.array([1,3,5,8])
# 数组作为下标访问
print(a[i])

j = np.array([
        [3,4],
        [6,8]
    ])
# 二维数组作为下标，返回的数组是一样的形状，取值，运算，放回
print(a[j])

a = a.reshape(3,4)
print(a)
i = np.array([
        [2,1],
        [0,2]
    ])
j = np.array([
        [2,1],
        [2,3]
    ])
# 返回的形状跟下表的数组形状一致，前行后列
# 两个下标数组的形状完全一致或可以通过广播扩展到一致
print(a[i,j])

# 返回第二列中行i对应的数构成二维数组
print(a[i,2])

# 返回每一行中列j对应的数并构成二维数组（本身为二维数组，就加为了三维数组）
print(a[:,j])

# 返回对应i行的所有元素并构成二维数组（本身为二维数组，就加为了三维数组
print(a[i, ...])

